﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Pout_Porri.Utils;
using Pout_Porri.Levels;

namespace Pout_Porri.Objects.Bosses
{
    class Boss : PhysicsGameEntity
    {
        /// <summary>
        /// The states of this entity
        /// </summary>
        public enum BossStates
        {
            // override this atribute to make new behaviors for diferent bosses
        }

        /// <summary>
        /// The life of this boss
        /// </summary>
        private int life;
        public int Life
        {
            get { return life; }
            set { life = value; }
        }

        public Boss(Texture2D image, Vector2 position, Vector2 velocity, int life)
            :base(image, position, velocity, true)
        {
            this.direction = new Vector2(1, 0);
            this.velocity = new Vector2(2, 0);
            this.life = life;
        }

        public Boss composeBoss(string name, Texture2D image, Vector2 position, Vector2 velocity, int life)
        {
            return new Bowser(image, position, velocity, life);
        }


        public override void update(GameTime gameTime)
        {
            applyMovement();

            base.update(gameTime);
        }


        public bool IsDead()
        {
            return life <= 0;
        }
    }
}
